package com.example.demo.Service;


import com.example.demo.entity.Post;
import com.example.demo.entity.User;
import com.example.demo.repository.PostRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class PostService {
    @Autowired
    private PostRepository postRepository;

    //创建或更新文章
    public Post save(Post post) {
        return postRepository.save(post);
    }

    //获取所有文章
    public List<Post> findAll() {
        return postRepository.findAll();
    }

    //通过ID查找文章
    public Post findById(Long id) {
        return postRepository.findById(id).orElse(null);
    }

    //通过用户查找文章
    public List<Post> findByUser(User user) {
        return postRepository.findByUser(user);
    }

    //通过标签查找文章
    public List<Post> findByTag(String tag) {
        return postRepository.findByTag(tag);
    }

    //根据用户和标签查找文章
    public List<Post> findByUserAndTag(User user, String tag) {
        return postRepository.findByUserAndTag(user, tag);
    }

    //根据用户名查找文章
    public List<Post> findByUsername(String username) {
        return postRepository.findByUser_Username(username);
    }

    //根据用户名和标签查找文章
    public List<Post> findByUsernameAndTag(String username, String tag) {
        return postRepository.findByUser_UsernameAndTag(username, tag);
    }

    //删除文章
    public void deleteById(Long id) {
        postRepository.deleteById(id);
    }

}
